/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.cultuurschuur.Controllers;

import be.cultuurschuur.entity.*;
import be.cultuurschuur.interfaces.*;
import be.cultuurschuur.services.*;
import java.io.*;
import java.util.*;
import javax.enterprise.context.*;
import javax.faces.context.*;
import javax.inject.*;

/**
 *
 * @author Jolien
 */
@Named
@RequestScoped
public class zoekController implements Serializable
{
    @Inject
    private ReisInterface reisInterface;
    
    private int bestemming;
    private int periode;
    private int plaatsen;
    private int vervoer;
    
    

    public int getBestemming() {
        return bestemming;
    }

    public void setBestemming(int bestemming) {
        this.bestemming = bestemming;
    }

    public int getPeriode() {
        return periode;
    }

    public void setPeriode(int periode) {
        this.periode = periode;
    }

    public int getPlaatsen() {
        return plaatsen;
    }

    public void setPlaatsen(int plaatsen) {
        this.plaatsen = plaatsen;
    }

    public int getVervoer() {
        return vervoer;
    }

    public void setVervoer(int vervoer) {
        this.vervoer = vervoer;
    }
    
    public void zoek()
    {
        FacesContext context = FacesContext.getCurrentInstance();
        
        BLBestemming bLBestemming = new BLBestemming();       
        BLPeriode bLPeriode = new BLPeriode();
        BLVervoer bLVervoer = new BLVervoer();
        BLReis blReis = new BLReis();
        
        Bestemming bestemmingZoek;
        if(bestemming != 0)
        {
            bestemmingZoek = bLBestemming.getBestemmingById(bestemming);
        }
        else
        {
            bestemmingZoek = null;
        }
        
        Periode periodeZoek;
        if(periode != 0)
        {
            periodeZoek = bLPeriode.getPeriodeById(periode);
        }
        else
        {
            periodeZoek = null;
        }
        
        Vervoer vervoerZoek;
        if(vervoer != 0)
        {
            vervoerZoek = bLVervoer.getVervoerById(vervoer);
        }
        else
        {
            vervoerZoek = null;
        }
        
        List<Reis> reisen = blReis.zoek(bestemmingZoek, periodeZoek, plaatsen, vervoerZoek);
        
        context.getExternalContext().getSessionMap().put("reisen", reisen);
    }
    
    public List<Reis> getGevondenReisen()
    {
        FacesContext context = FacesContext.getCurrentInstance();
        List<Reis> reisen = null;
        
        if(context != null) {
            Map<String, Object> sessionMap = context.getExternalContext().getSessionMap();
                 if(sessionMap != null) {
                    reisen =  (List<Reis>) sessionMap.get("reisen");
                 }

        }
        
        return reisen;
    }
}
